
package com.microsoft.schemas.office.project.server.webservices.assnhistorydataset;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;


/**
 * <p>Java class for anonymous complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType>
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;choice maxOccurs="unbounded" minOccurs="0">
 *         &lt;element name="History">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="ASSN_TRANS_UID" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                   &lt;element name="ASSN_TRANS_TYPE_ENUM" type="{http://www.w3.org/2001/XMLSchema}unsignedByte"/>
 *                   &lt;element name="ASSN_TRANS_ACTION_ENUM" type="{http://www.w3.org/2001/XMLSchema}unsignedByte"/>
 *                   &lt;element name="ASSN_TRANS_UPDATE_DATE" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *                   &lt;element name="ASSN_TRANS_SUBMIT_DATE" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
 *                   &lt;element name="ASSN_CHANGE_DATA" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
 *                   &lt;element name="TASK_CHANGE_DATA" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
 *                   &lt;element name="ASSN_TRANS_COMMENT" minOccurs="0">
 *                     &lt;simpleType>
 *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         &lt;maxLength value="1000"/>
 *                       &lt;/restriction>
 *                     &lt;/simpleType>
 *                   &lt;/element>
 *                   &lt;element name="ASSN_TRANS_COMMENT_TYPE_ENUM" type="{http://www.w3.org/2001/XMLSchema}unsignedByte"/>
 *                   &lt;element name="ASSN_TRANS_AUTHOR_RES_UID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   &lt;element name="RES_NAME">
 *                     &lt;simpleType>
 *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         &lt;maxLength value="255"/>
 *                       &lt;/restriction>
 *                     &lt;/simpleType>
 *                   &lt;/element>
 *                   &lt;element name="RES_NAME_DELEGATEE" minOccurs="0">
 *                     &lt;simpleType>
 *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         &lt;maxLength value="255"/>
 *                       &lt;/restriction>
 *                     &lt;/simpleType>
 *                   &lt;/element>
 *                   &lt;element name="ASSN_TRANS_DATE_ENTERED" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
 *                   &lt;element name="ASSN_TRANS_DELEGATE_DATE" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
 *                   &lt;element name="WASSN_UPDATE_TRACKING_MODE" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *         &lt;element name="CustomFields">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="MD_PROP_UID" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                   &lt;element name="MD_PROP_NAME">
 *                     &lt;simpleType>
 *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         &lt;maxLength value="255"/>
 *                       &lt;/restriction>
 *                     &lt;/simpleType>
 *                   &lt;/element>
 *                   &lt;element name="MD_PROP_TYPE_ENUM" type="{http://www.w3.org/2001/XMLSchema}unsignedByte" minOccurs="0"/>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *       &lt;/choice>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "historyOrCustomFields"
})
@XmlRootElement(name = "AssnHistoryDataSet")
public class AssnHistoryDataSet {

    @XmlElements({
        @XmlElement(name = "CustomFields", type = AssnHistoryDataSet.CustomFields.class),
        @XmlElement(name = "History", type = AssnHistoryDataSet.History.class)
    })
    protected List<Object> historyOrCustomFields;

    /**
     * Gets the value of the historyOrCustomFields property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the historyOrCustomFields property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getHistoryOrCustomFields().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link AssnHistoryDataSet.CustomFields }
     * {@link AssnHistoryDataSet.History }
     * 
     * 
     */
    public List<Object> getHistoryOrCustomFields() {
        if (historyOrCustomFields == null) {
            historyOrCustomFields = new ArrayList<Object>();
        }
        return this.historyOrCustomFields;
    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="MD_PROP_UID" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *         &lt;element name="MD_PROP_NAME">
     *           &lt;simpleType>
     *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
     *               &lt;maxLength value="255"/>
     *             &lt;/restriction>
     *           &lt;/simpleType>
     *         &lt;/element>
     *         &lt;element name="MD_PROP_TYPE_ENUM" type="{http://www.w3.org/2001/XMLSchema}unsignedByte" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "mdpropuid",
        "mdpropname",
        "mdproptypeenum"
    })
    public static class CustomFields {

        @XmlElement(name = "MD_PROP_UID", required = true)
        protected String mdpropuid;
        @XmlElement(name = "MD_PROP_NAME", required = true)
        protected String mdpropname;
        @XmlElement(name = "MD_PROP_TYPE_ENUM")
        @XmlSchemaType(name = "unsignedByte")
        protected Short mdproptypeenum;

        /**
         * Gets the value of the mdpropuid property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getMDPROPUID() {
            return mdpropuid;
        }

        /**
         * Sets the value of the mdpropuid property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setMDPROPUID(String value) {
            this.mdpropuid = value;
        }

        /**
         * Gets the value of the mdpropname property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getMDPROPNAME() {
            return mdpropname;
        }

        /**
         * Sets the value of the mdpropname property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setMDPROPNAME(String value) {
            this.mdpropname = value;
        }

        /**
         * Gets the value of the mdproptypeenum property.
         * 
         * @return
         *     possible object is
         *     {@link Short }
         *     
         */
        public Short getMDPROPTYPEENUM() {
            return mdproptypeenum;
        }

        /**
         * Sets the value of the mdproptypeenum property.
         * 
         * @param value
         *     allowed object is
         *     {@link Short }
         *     
         */
        public void setMDPROPTYPEENUM(Short value) {
            this.mdproptypeenum = value;
        }

    }


    /**
     * <p>Java class for anonymous complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType>
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="ASSN_TRANS_UID" type="{http://www.w3.org/2001/XMLSchema}string"/>
     *         &lt;element name="ASSN_TRANS_TYPE_ENUM" type="{http://www.w3.org/2001/XMLSchema}unsignedByte"/>
     *         &lt;element name="ASSN_TRANS_ACTION_ENUM" type="{http://www.w3.org/2001/XMLSchema}unsignedByte"/>
     *         &lt;element name="ASSN_TRANS_UPDATE_DATE" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
     *         &lt;element name="ASSN_TRANS_SUBMIT_DATE" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
     *         &lt;element name="ASSN_CHANGE_DATA" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
     *         &lt;element name="TASK_CHANGE_DATA" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
     *         &lt;element name="ASSN_TRANS_COMMENT" minOccurs="0">
     *           &lt;simpleType>
     *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
     *               &lt;maxLength value="1000"/>
     *             &lt;/restriction>
     *           &lt;/simpleType>
     *         &lt;/element>
     *         &lt;element name="ASSN_TRANS_COMMENT_TYPE_ENUM" type="{http://www.w3.org/2001/XMLSchema}unsignedByte"/>
     *         &lt;element name="ASSN_TRANS_AUTHOR_RES_UID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
     *         &lt;element name="RES_NAME">
     *           &lt;simpleType>
     *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
     *               &lt;maxLength value="255"/>
     *             &lt;/restriction>
     *           &lt;/simpleType>
     *         &lt;/element>
     *         &lt;element name="RES_NAME_DELEGATEE" minOccurs="0">
     *           &lt;simpleType>
     *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
     *               &lt;maxLength value="255"/>
     *             &lt;/restriction>
     *           &lt;/simpleType>
     *         &lt;/element>
     *         &lt;element name="ASSN_TRANS_DATE_ENTERED" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
     *         &lt;element name="ASSN_TRANS_DELEGATE_DATE" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/>
     *         &lt;element name="WASSN_UPDATE_TRACKING_MODE" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "assntransuid",
        "assntranstypeenum",
        "assntransactionenum",
        "assntransupdatedate",
        "assntranssubmitdate",
        "assnchangedata",
        "taskchangedata",
        "assntranscomment",
        "assntranscommenttypeenum",
        "assntransauthorresuid",
        "resname",
        "resnamedelegatee",
        "assntransdateentered",
        "assntransdelegatedate",
        "wassnupdatetrackingmode"
    })
    public static class History {

        @XmlElement(name = "ASSN_TRANS_UID", required = true)
        protected String assntransuid;
        @XmlElement(name = "ASSN_TRANS_TYPE_ENUM")
        @XmlSchemaType(name = "unsignedByte")
        protected short assntranstypeenum;
        @XmlElement(name = "ASSN_TRANS_ACTION_ENUM")
        @XmlSchemaType(name = "unsignedByte")
        protected short assntransactionenum;
        @XmlElement(name = "ASSN_TRANS_UPDATE_DATE")
        @XmlSchemaType(name = "dateTime")
        protected XMLGregorianCalendar assntransupdatedate;
        @XmlElement(name = "ASSN_TRANS_SUBMIT_DATE", required = true)
        @XmlSchemaType(name = "dateTime")
        protected XMLGregorianCalendar assntranssubmitdate;
        @XmlElement(name = "ASSN_CHANGE_DATA")
        protected byte[] assnchangedata;
        @XmlElement(name = "TASK_CHANGE_DATA")
        protected byte[] taskchangedata;
        @XmlElement(name = "ASSN_TRANS_COMMENT")
        protected String assntranscomment;
        @XmlElement(name = "ASSN_TRANS_COMMENT_TYPE_ENUM")
        @XmlSchemaType(name = "unsignedByte")
        protected short assntranscommenttypeenum;
        @XmlElement(name = "ASSN_TRANS_AUTHOR_RES_UID")
        protected String assntransauthorresuid;
        @XmlElement(name = "RES_NAME", required = true)
        protected String resname;
        @XmlElement(name = "RES_NAME_DELEGATEE")
        protected String resnamedelegatee;
        @XmlElement(name = "ASSN_TRANS_DATE_ENTERED", required = true)
        @XmlSchemaType(name = "dateTime")
        protected XMLGregorianCalendar assntransdateentered;
        @XmlElement(name = "ASSN_TRANS_DELEGATE_DATE")
        @XmlSchemaType(name = "dateTime")
        protected XMLGregorianCalendar assntransdelegatedate;
        @XmlElement(name = "WASSN_UPDATE_TRACKING_MODE")
        protected Integer wassnupdatetrackingmode;

        /**
         * Gets the value of the assntransuid property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getASSNTRANSUID() {
            return assntransuid;
        }

        /**
         * Sets the value of the assntransuid property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setASSNTRANSUID(String value) {
            this.assntransuid = value;
        }

        /**
         * Gets the value of the assntranstypeenum property.
         * 
         */
        public short getASSNTRANSTYPEENUM() {
            return assntranstypeenum;
        }

        /**
         * Sets the value of the assntranstypeenum property.
         * 
         */
        public void setASSNTRANSTYPEENUM(short value) {
            this.assntranstypeenum = value;
        }

        /**
         * Gets the value of the assntransactionenum property.
         * 
         */
        public short getASSNTRANSACTIONENUM() {
            return assntransactionenum;
        }

        /**
         * Sets the value of the assntransactionenum property.
         * 
         */
        public void setASSNTRANSACTIONENUM(short value) {
            this.assntransactionenum = value;
        }

        /**
         * Gets the value of the assntransupdatedate property.
         * 
         * @return
         *     possible object is
         *     {@link XMLGregorianCalendar }
         *     
         */
        public XMLGregorianCalendar getASSNTRANSUPDATEDATE() {
            return assntransupdatedate;
        }

        /**
         * Sets the value of the assntransupdatedate property.
         * 
         * @param value
         *     allowed object is
         *     {@link XMLGregorianCalendar }
         *     
         */
        public void setASSNTRANSUPDATEDATE(XMLGregorianCalendar value) {
            this.assntransupdatedate = value;
        }

        /**
         * Gets the value of the assntranssubmitdate property.
         * 
         * @return
         *     possible object is
         *     {@link XMLGregorianCalendar }
         *     
         */
        public XMLGregorianCalendar getASSNTRANSSUBMITDATE() {
            return assntranssubmitdate;
        }

        /**
         * Sets the value of the assntranssubmitdate property.
         * 
         * @param value
         *     allowed object is
         *     {@link XMLGregorianCalendar }
         *     
         */
        public void setASSNTRANSSUBMITDATE(XMLGregorianCalendar value) {
            this.assntranssubmitdate = value;
        }

        /**
         * Gets the value of the assnchangedata property.
         * 
         * @return
         *     possible object is
         *     byte[]
         */
        public byte[] getASSNCHANGEDATA() {
            return assnchangedata;
        }

        /**
         * Sets the value of the assnchangedata property.
         * 
         * @param value
         *     allowed object is
         *     byte[]
         */
        public void setASSNCHANGEDATA(byte[] value) {
            this.assnchangedata = ((byte[]) value);
        }

        /**
         * Gets the value of the taskchangedata property.
         * 
         * @return
         *     possible object is
         *     byte[]
         */
        public byte[] getTASKCHANGEDATA() {
            return taskchangedata;
        }

        /**
         * Sets the value of the taskchangedata property.
         * 
         * @param value
         *     allowed object is
         *     byte[]
         */
        public void setTASKCHANGEDATA(byte[] value) {
            this.taskchangedata = ((byte[]) value);
        }

        /**
         * Gets the value of the assntranscomment property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getASSNTRANSCOMMENT() {
            return assntranscomment;
        }

        /**
         * Sets the value of the assntranscomment property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setASSNTRANSCOMMENT(String value) {
            this.assntranscomment = value;
        }

        /**
         * Gets the value of the assntranscommenttypeenum property.
         * 
         */
        public short getASSNTRANSCOMMENTTYPEENUM() {
            return assntranscommenttypeenum;
        }

        /**
         * Sets the value of the assntranscommenttypeenum property.
         * 
         */
        public void setASSNTRANSCOMMENTTYPEENUM(short value) {
            this.assntranscommenttypeenum = value;
        }

        /**
         * Gets the value of the assntransauthorresuid property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getASSNTRANSAUTHORRESUID() {
            return assntransauthorresuid;
        }

        /**
         * Sets the value of the assntransauthorresuid property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setASSNTRANSAUTHORRESUID(String value) {
            this.assntransauthorresuid = value;
        }

        /**
         * Gets the value of the resname property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getRESNAME() {
            return resname;
        }

        /**
         * Sets the value of the resname property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setRESNAME(String value) {
            this.resname = value;
        }

        /**
         * Gets the value of the resnamedelegatee property.
         * 
         * @return
         *     possible object is
         *     {@link String }
         *     
         */
        public String getRESNAMEDELEGATEE() {
            return resnamedelegatee;
        }

        /**
         * Sets the value of the resnamedelegatee property.
         * 
         * @param value
         *     allowed object is
         *     {@link String }
         *     
         */
        public void setRESNAMEDELEGATEE(String value) {
            this.resnamedelegatee = value;
        }

        /**
         * Gets the value of the assntransdateentered property.
         * 
         * @return
         *     possible object is
         *     {@link XMLGregorianCalendar }
         *     
         */
        public XMLGregorianCalendar getASSNTRANSDATEENTERED() {
            return assntransdateentered;
        }

        /**
         * Sets the value of the assntransdateentered property.
         * 
         * @param value
         *     allowed object is
         *     {@link XMLGregorianCalendar }
         *     
         */
        public void setASSNTRANSDATEENTERED(XMLGregorianCalendar value) {
            this.assntransdateentered = value;
        }

        /**
         * Gets the value of the assntransdelegatedate property.
         * 
         * @return
         *     possible object is
         *     {@link XMLGregorianCalendar }
         *     
         */
        public XMLGregorianCalendar getASSNTRANSDELEGATEDATE() {
            return assntransdelegatedate;
        }

        /**
         * Sets the value of the assntransdelegatedate property.
         * 
         * @param value
         *     allowed object is
         *     {@link XMLGregorianCalendar }
         *     
         */
        public void setASSNTRANSDELEGATEDATE(XMLGregorianCalendar value) {
            this.assntransdelegatedate = value;
        }

        /**
         * Gets the value of the wassnupdatetrackingmode property.
         * 
         * @return
         *     possible object is
         *     {@link Integer }
         *     
         */
        public Integer getWASSNUPDATETRACKINGMODE() {
            return wassnupdatetrackingmode;
        }

        /**
         * Sets the value of the wassnupdatetrackingmode property.
         * 
         * @param value
         *     allowed object is
         *     {@link Integer }
         *     
         */
        public void setWASSNUPDATETRACKINGMODE(Integer value) {
            this.wassnupdatetrackingmode = value;
        }

    }

}
